home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / gems / gemsiii.lha / gemsIII / luminaire / triangle_luminaire.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-20  |  1020 b   |  32 lines

  1. // ******************************************************************
  2. //
  3. // Physically Correct Direct Lighting For Distribution Ray Tracing
  4. //             by Changyaw Wang
  5. //
  6. // triangle_luminaire.h
  7. //
  8. // ******************************************************************
  9.  
  10. class triangle : public geom_obj {
  11. public:
  12.     point p1;            // vertex
  13.     point p2;            // vertex
  14.     point p3;            // vertex
  15.     vector normal;       // normal vector
  16.  
  17.     void hit(const point& x,   // viewpoint
  18.          const vector& v,  // viewing direction
  19.          const point on_light);   // hit point
  20.          
  21.     // Selects a point visible from x given (r1,r2).
  22.     // Here, visible means not SELF-shadowed.
  23.  
  24.     virtual void select_visible_point(
  25.              const point& x,   // viewpoint
  26.              const double r1,  // random number
  27.              const double r2,  // random number
  28.              point& on_light,  // point corresponding to (r1,r2)
  29.              double& prob);    // probability of selecting on_light
  30. };
  31.  
  32.